An internetwork device, such a bridge or router, provides the ability: 1) to receive a network message, or frame, over a network port; 2) to temporarily store the frame while required translation and reformatting is executed on the frame by the device; and 3) to retransmit the translated frame. Retransmission typically occurs over a network other than the one over which the frame was originally received. Commonly, such a device acts "promiscuously", which is to say that frames from each network interfaced by the device are received into memory. Frames destined for a port on the same network as received are normally dropped before being translated or otherwise processed by the device, while frames destined for another network are stored and reformatted/retranslated prior to transmission.
The memory resources employed by such internetworking devices to store frames are divided into buffers, typically on the order of 2048 bytes in size. While Ethernet frames are 1500 bytes in length and can therefore fit into one buffer, FDDI (fiber-distributed data interface) frames are on the order of 4500 bytes, thus requiring three buffers for complete storage.
Two approaches have been taken in managing the distribution of buffers among network ports within such devices. The first approach can be referred to as static buffer distribution, in which each one of the buffers in the device is distributed to a respective port. Thus, for example, in an internetworking device having sixteen ports and 2048 buffers, 128 buffers can be exclusively assigned to each port. The advantage of this approach is that each port is guaranteed to have a minimum number of buffers available to it at all times. A disadvantage lies in the "bursty" nature of network traffic, wherein a majority of these ports and their associated buffers are unused at any one time, while one or a few ports may have a great deal of traffic and may thus use up their supply of dedicated buffers.
In the other approach, referred to as dynamic buffer distribution, all of the buffers are located in a single common pool, such that any port requiring a buffer can choose one from the common pool. The advantage here is that any one port is not constrained by a small number of dedicated buffers, though a disadvantage lies in the unfair ability of one highly active port to block access to the common pool by other ports.